๋ง์ดํฌ๋ก์๋น์ค์์ ๋์ ์๋น์ค ๋ฑ๋ก, ๋ฉ์ปค๋์ฆ, ์ด์ , ํต์ฌ ๊ธฐ์ , ํ์ฅ ๊ฐ๋ฅํ๊ณ ํ๋ ฅ์ ์ธ ๋ถ์ฐ ์์คํ ๊ตฌ์ถ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ดํด๋ณด์ธ์.
์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ: ํ๋ ์ํคํ ์ฒ์์ ๋์ ์๋น์ค ๋ฑ๋ก์ ์ค์ํ ์ญํ
์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ ๋ ๋ง์ ๋ ๋ฆฝ์ ์ธ ์๋น์ค๋ก ๊ตฌ์ฑ๋๋ ๋ถ์ฐ ์์คํ ์ ๋น ๋ฅด๊ฒ ์งํํ๋ ํ๊ฒฝ์์ ์ด๋ฌํ ์๋น์ค๊ฐ ์๋ก ํจ์จ์ ์ด๊ณ ์์ ์ ์ผ๋ก ์ฐพ๊ณ ํต์ ํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ฅผ ํ๋ ์ฝ๋ฉํ๋ ์๋๋ ์ง๋ฌ์ต๋๋ค. ํ๋์ ์ธ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ ํจ์ฌ ๋ ๋ฏผ์ฒฉํ๊ณ ์๋ํ๋ ์ ๊ทผ ๋ฐฉ์์ ์๊ตฌํฉ๋๋ค. ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ. ํจ๊ณผ์ ์ธ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ์ ํต์ฌ์๋ ๋์ ์๋น์ค ๋ฑ๋ก์ด๋ผ๋ ์ค์ํ ๋ฉ์ปค๋์ฆ์ด ์์ต๋๋ค.
์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ ๋์ ์๋น์ค ๋ฑ๋ก์ ๋ณต์ก์ฑ์ ์์ธํ ์ดํด๋ณด๊ณ ๊ธฐ๋ณธ ๊ฐ๋ , ํ๋ ฅ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์์คํ ๊ตฌ์ถ์์ ์ค์ํ ์ญํ , ์ด๋ฅผ ๊ตฌ๋ํ๋ ๊ธฐ๋ณธ ๊ธฐ์ , ๋ค์ํ ๊ธ๋ก๋ฒ ์ธํ๋ผ์์ ํจ๊ณผ์ ์ผ๋ก ๊ตฌํํ๊ธฐ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ดํด๋ด ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ์ ์งํ: ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๊ฐ ํ์์ ์ธ ์ด์
์ญ์ฌ์ ์ผ๋ก ๋ชจ๋ ๊ธฐ๋ฅ์ด ๋จ์ผ ์ฝ๋๋ฒ ์ด์ค ๋ด์ ์๋ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ช ์ ๋๋ ์ ์๋ ค์ง ์๋ฒ์ ๋ฐฐํฌ๋์์ต๋๋ค. ๊ตฌ์ฑ ์์ ๊ฐ์ ํต์ ์ ์ผ๋ฐ์ ์ผ๋ก ํ๋ก์ธ์ค ๋ด์์ ๋๋ ์ง์ ์ ์ธ ์ ์ ๋คํธ์ํฌ ๊ตฌ์ฑ์ ํตํด ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ด ๋ชจ๋ธ์ ์ด๊ธฐ ๋จ๊ณ์์ ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋ ๊ฐ๋จํ์ง๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์ก์ฑ, ๊ท๋ชจ ๋ฐ ๋ฐฐํฌ ๋น๋๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์๋นํ ๊ณผ์ ๋ฅผ ์ ์ํ์ต๋๋ค.
- ํ์ฅ์ฑ ๋ณ๋ชฉ ํ์: ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅํ๋ ๊ฒ์ ์ข ์ข ํ๋์ ๊ตฌ์ฑ ์์๋ง ๊ณผ๋ถํ ์ํ์ ์๋๋ผ๋ ์ ์ฒด ์คํ์ ๋ณต์ ํ๋ ๊ฒ์ ์๋ฏธํ์ต๋๋ค.
- ๋ฐฐํฌ ๊ฒฝ์ง์ฑ: ์ ๋ฐ์ดํธ๋ฅผ ๋ฐฐํฌํ๋ ค๋ฉด ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ๋ฐฐํฌํด์ผ ํ์ผ๋ฏ๋ก ๊ฐ๋ ์ค์ง ์๊ฐ์ด ๊ธธ์ด์ง๊ณ ์ํ์ด ๋์์ก์ต๋๋ค.
- ๊ธฐ์ ์ข ์์ฑ: ๋ชจ๋๋ฆฌ์ค๋ ์ข ์ข ๊ฐ๋ฐ์ ๋จ์ผ ๊ธฐ์ ์คํ์ผ๋ก ์ ํํ์ต๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ์ถํ์ ๋งค๋ ฅ์ ์ธ ๋์์ ์ ์ํ์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ณ ๋ ๋ฆฝ์ ์ด๋ฉฐ ๋์จํ๊ฒ ๊ฒฐํฉ๋ ์๋น์ค๋ก ๋ถํดํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ ๋ก ์๋ ์ ์ฐ์ฑ์ ์ป์์ต๋๋ค.
- ๋ ๋ฆฝ์ ์ธ ํ์ฅ์ฑ: ๊ฐ ์๋น์ค๋ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค.
- ๊ธฐ์ ๋ค์์ฑ: ๋ค์ํ ์๋น์ค๋ฅผ ๊ฐ์ฅ ์ ํฉํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
- ๋ ๋น ๋ฅธ ๊ฐ๋ฐ ์ฃผ๊ธฐ: ํ์ ์๋น์ค๋ฅผ ์์จ์ ์ผ๋ก ๊ฐ๋ฐ, ๋ฐฐํฌ ๋ฐ ๋ฐ๋ณตํ ์ ์์ต๋๋ค.
- ํฅ์๋ ๋ณต์๋ ฅ: ํ๋์ ์๋น์ค ์ค๋ฅ๊ฐ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋จ์ํฌ ๊ฐ๋ฅ์ฑ์ด ์ ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ์๋ก์ด ์ ์ฐ์ฑ์ผ๋ก ์ธํด ํนํ ์๋น์ค ๊ฐ ํต์ ๊ณผ ๊ด๋ จ๋ ์๋ก์ด ์ด์์์ ๋ณต์ก์ฑ์ด ๋ฐ์ํ์ต๋๋ค. ๋์ ๋ง์ดํฌ๋ก์๋น์ค ํ๊ฒฝ์์ ์๋น์ค ์ธ์คํด์ค๋ ์ง์์ ์ผ๋ก ์์ฑ, ์ญ์ , ํ์ฅ, ์ถ์ ๋ฐ ๋ค๋ฅธ ๋คํธ์ํฌ ์์น๋ก ์ด๋๋ฉ๋๋ค. ๋คํธ์ํฌ ์ฃผ์์ ๋ํ ์ฌ์ ์ง์ ์์ด ํ ์๋น์ค๊ฐ ๋ค๋ฅธ ์๋น์ค๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น์?
์ด๊ฒ์ด ๋ฐ๋ก ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๊ฐ ํด๊ฒฐํ๋ ๋ฌธ์ ์ ๋๋ค.
์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ์ดํด: ์ญ๋์ ์ธ ํ๊ฒฝ์์ ๊ธธ ์ฐพ๊ธฐ
์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๋ ํด๋ผ์ด์ธํธ(์ต์ข ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๋ค๋ฅธ ์๋น์ค์ด๋ )๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ์๋น์ค ์ธ์คํด์ค์ ๋คํธ์ํฌ ์์น๋ฅผ ์ฐพ๋ ํ๋ก์ธ์ค์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์๋น์ค์ ๋ํ ๋๋ ํฐ๋ฆฌ ์ญํ ์ ํ์ฌ ํ์ฌ ์ฃผ์์ ํฌํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ์๋ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ํจํด์ด ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ ์ธก ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ
์ด ํจํด์์ ํด๋ผ์ด์ธํธ ์๋น์ค๋ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ(์ฌ์ฉ ๊ฐ๋ฅํ ์๋น์ค ์ธ์คํด์ค์ ์ค์ ์ง์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค)๋ฅผ ์ฟผ๋ฆฌํ์ฌ ์ํ๋ ์๋น์ค์ ๋คํธ์ํฌ ์์น๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋ผ์ด์ธํธ๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ์ธ์คํด์ค ์ค ํ๋๋ฅผ ์ ํํ๊ณ ์ง์ ์์ฒญํฉ๋๋ค.
- ๋ฉ์ปค๋์ฆ: ํด๋ผ์ด์ธํธ๋ ํน์ ์๋น์ค์ ๋ํ ์์ฒญ์ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ์ ๋ณด๋ ๋๋ค. ๋ ์ง์คํธ๋ฆฌ๋ ํ์ฑ ์ธ์คํด์ค ๋ชฉ๋ก์ ๋ฐํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋ผ์ด์ธํธ๋ ์ธ์คํด์ค๋ฅผ ์ ํํ๊ณ (์: ๋ผ์ด๋ ๋ก๋น) ์ง์ ํธ์ถํฉ๋๋ค.
- ์ฅ์ :
- ํนํ ๋์ค์ปค๋ฒ๋ฆฌ ๋ก์ง์ ์ถ์ํํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ๊ธฐ๊ฐ ๊ฐ๋จํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ์ ๊ตํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์ ๋ต์ ๊ตฌํํ ์ ์์ต๋๋ค.
- ๋ก๋ ๋ฐธ๋ฐ์ ๊ณ์ธต์ ๋จ์ผ ์คํจ ์ง์ ์ด ์์ต๋๋ค.
- ๋จ์ :
- ํด๋ผ์ด์ธํธ๊ฐ ๋์ค์ปค๋ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ๊ณผ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ธ์ํด์ผ ํฉ๋๋ค.
- ๋์ค์ปค๋ฒ๋ฆฌ ๋ก์ง์ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ๊ตฌํํ๊ฑฐ๋ ํตํฉํด์ผ ํฉ๋๋ค.
- ๋์ค์ปค๋ฒ๋ฆฌ ๋ก์ง์ ๋ณ๊ฒฝํ๋ ค๋ฉด ํด๋ผ์ด์ธํธ ์ ๋ฐ์ดํธ๊ฐ ํ์ํฉ๋๋ค.
- ์: Netflix Eureka, Apache ZooKeeper, HashiCorp Consul(ํด๋ผ์ด์ธํธ ์ธก ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ).
์๋ฒ ์ธก ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ
์๋ฒ ์ธก ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๋ ๋ก๋ ๋ฐธ๋ฐ์(๋๋ ์ ์ฌํ ๋ผ์ฐํ ๊ตฌ์ฑ ์์)์ ์์ฒญ์ ๋ณด๋ด๊ณ , ๋ก๋ ๋ฐธ๋ฐ์๋ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฟผ๋ฆฌํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ์๋น์ค ์ธ์คํด์ค์ ๋คํธ์ํฌ ์์น๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ๋์ค์ปค๋ฒ๋ฆฌ ํ๋ก์ธ์ค๋ฅผ ์์ง ๋ชปํฉ๋๋ค.
- ๋ฉ์ปค๋์ฆ: ํด๋ผ์ด์ธํธ๋ ์ ์๋ ค์ง ๋ก๋ ๋ฐธ๋ฐ์ URL์ ์์ฒญํฉ๋๋ค. ๋ก๋ ๋ฐธ๋ฐ์๋ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฟผ๋ฆฌํ๊ณ ํ์ฑ ์ธ์คํด์ค์ ์ฃผ์๋ฅผ ๊ฒ์ํ์ฌ ์์ฒญ์ ์ ๋ฌํฉ๋๋ค.
- ์ฅ์ :
- ํด๋ผ์ด์ธํธ๋ ๋์ค์ปค๋ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์์ ๋ถ๋ฆฌ๋ฉ๋๋ค.
- ๋์ค์ปค๋ฒ๋ฆฌ ๋ฐ ๋ผ์ฐํ ๋ก์ง์ ์ค์ ์ง์ค์ ๊ด๋ฆฌ.
- ์๋ก์ด ์๋น์ค๋ฅผ ๋์ ํ๊ฑฐ๋ ๋ผ์ฐํ ๊ท์น์ ๋ณ๊ฒฝํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค.
- ๋จ์ :
- ๊ฐ์ฉ์ฑ์ด ๋๊ณ ํ์ฅ ๊ฐ๋ฅํ ๋ก๋ ๋ฐธ๋ฐ์ ์ธํ๋ผ๊ฐ ํ์ํฉ๋๋ค.
- ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์ ๋๋ก ๊ตฌ์ฑ๋์ง ์์ผ๋ฉด ๋จ์ผ ์คํจ ์ง์ ์ด ๋ ์ ์์ต๋๋ค.
- ์: AWS Elastic Load Balancers (ELB/ALB), Kubernetes Services, NGINX Plus, Envoy Proxy.
์ ํํ ํจํด์ ๊ด๊ณ์์ด ๋ ๋ค ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ ์๋น์ค ์ธ์คํด์ค์ ๋ํ ์ต์ ์ ๋ณด๋ก ์๋น์ค ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ๋ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ์์กดํฉ๋๋ค. ์ด ์ง์ ์์ ๋์ ์๋น์ค ๋ฑ๋ก์ด ํ์ ๋ถ๊ฐ๊ฒฐํด์ง๋๋ค.
๋์ ์๋น์ค ๋ฑ๋ก์ ๋ํ ์ฌ์ธต ๋ถ์: ํ๋ ์์คํ ์ ํต์ฌ
๋์ ์๋น์ค ๋ฑ๋ก์ ์๋น์ค ์ธ์คํด์ค๊ฐ ์์๋ ๋ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ์ ์์ ์ ๋ฑ๋กํ๊ฑฐ๋ ์์ด์ ํธ์ ์ํด ๋ฑ๋ก๋๊ณ ์ข ๋ฃ๋๊ฑฐ๋ ๋น์ ์ ์ํ๊ฐ ๋๋ฉด ๋ฑ๋ก์ ์ทจ์ํ๋ ์๋ํ๋ ํ๋ก์ธ์ค์ ๋๋ค. '๋์ '์ธ ์ด์ ๋ ์คํ ์ค์ธ ์๋น์ค์ ํ์ฌ ์ํ๋ฅผ ์ง์์ ์ผ๋ก ๋ฐ์ํ์ฌ ์ค์๊ฐ์ผ๋ก ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋์ ์๋น์ค ๋ฑ๋ก์ด ํ์์ ์ธ ์ด์ ๋ ๋ฌด์์ผ๊น์?
์ง์์ ์ธ ๋ฐฐํฌ, ์๋ ํ์ฅ ๋ฐ ์์ฒด ๋ณต๊ตฌ ๊ธฐ๋ฅ์ด ํน์ง์ธ ํ๊ฒฝ์์ ์ ์ ๊ตฌ์ฑ์ ๋จ์ํ ๋นํ์ค์ ์ ๋๋ค. ๋์ ๋ฑ๋ก์ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ค์ํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
- ํ๋ ฅ์ฑ ๋ฐ ํ์ฅ์ฑ: ์์๊ฐ ๋ณ๋ํจ์ ๋ฐ๋ผ ์๋ก์ด ์๋น์ค ์ธ์คํด์ค๋ฅผ ์๋์ผ๋ก ์คํ์ ๋๋ ๋ค์ดํ ์ ์์ต๋๋ค. ๋์ ๋ฑ๋ก์ ์ด๋ฌํ ์ ์ธ์คํด์ค๊ฐ ์ฆ์ ๊ฒ์ ๊ฐ๋ฅํ๊ณ ๋ ์ด์ ํ์ํ์ง ์์ ๋ ์ ๊ฑฐ๋๋๋ก ๋ณด์ฅํ์ฌ ์ง์ ํ ํ๋ ฅ์ฑ์ ์ง์ํฉ๋๋ค.
- ๋ด๊ฒฐํจ์ฑ ๋ฐ ๋ณต์๋ ฅ: ์๋น์ค ์ธ์คํด์ค๊ฐ ์คํจํ๊ฑฐ๋ ๋น์ ์ ์ํ๊ฐ ๋๋ฉด ๋์ ๋ฑ๋ก ๋ฉ์ปค๋์ฆ(์ข ์ข ์ํ ๊ฒ์ฌ์ ๊ฒฐํฉ๋จ)์ ์ฌ์ฉ ๊ฐ๋ฅํ ์๋น์ค ๋ชฉ๋ก์์ ๋น ๋ฅด๊ฒ ์ ๊ฑฐ๋์ด ์์ฒญ์ด ๋ผ์ฐํ ๋์ง ์๋๋ก ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์คํ ์ ์ ๋ฐ์ ์ธ ๋ณต์๋ ฅ์ด ํฅ์๋ฉ๋๋ค.
- ์ด์ ์ค๋ฒํค๋ ๊ฐ์: ๊ตฌ์ฑ ํ์ผ ๋๋ ๋ก๋ ๋ฐธ๋ฐ์ ๊ท์น์ ๋ํ ์๋ ์ ๋ฐ์ดํธ๊ฐ ์ ๊ฑฐ๋์ด ์ด์ ํ์ ๋ถ๋ด์ ํฌ๊ฒ ์ค์ด๊ณ ์ธ์ ์ค๋ฅ๋ฅผ ์ต์ํํฉ๋๋ค.
- ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์ธํ๋ผ: ์๋น์ค๋ฅผ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ๊ฒ ์ทจ๊ธํ ์ ์์ต๋๋ค. ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ ์ธ์คํด์ค๊ฐ ๋ฐฐํฌ ๋ฐ ๋ฑ๋ก๋๊ณ ์ด์ ์ธ์คํด์ค๋ ๋ฑ๋ก ์ทจ์ ๋ฐ ํ๊ธฐ๋๋ฉฐ ๊ธฐ์กด ์ธ์คํด์ค๋ฅผ ์ ์๋ฆฌ์์ ์ ๋ฐ์ดํธํ๋ ๋์ ์ํ๋ฉ๋๋ค.
- ๋ถ๋ฆฌ: ์๋น์ค๋ ์ข ์์ฑ์ ํน์ ๋คํธ์ํฌ ์ฃผ์๋ฅผ ๋ฏธ๋ฆฌ ์ ํ์๊ฐ ์์ผ๋ฏ๋ก ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ง๊ณ ์ํคํ ์ฒ ์ ์ฐ์ฑ์ด ํฅ์๋ฉ๋๋ค.
๋์ ์๋น์ค ๋ฑ๋ก ์๋ ๋ฐฉ์(์๋ช ์ฃผ๊ธฐ)
๋์ ๋ฑ๋ก ์์คํ ๋ด์์ ์๋น์ค ์ธ์คํด์ค์ ์๋ช ์ฃผ๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ ๋จ๊ณ๋ฅผ ํฌํจํฉ๋๋ค.
- ์์ ๋ฐ ๋ฑ๋ก: ์ ์๋น์ค ์ธ์คํด์ค๊ฐ ์์๋๋ฉด ๋คํธ์ํฌ ์ฃผ์(IP ์ฃผ์ ๋ฐ ํฌํธ)์ ๋ฉํ๋ฐ์ดํฐ(์: ์๋น์ค ์ด๋ฆ, ๋ฒ์ , ์์ญ)๋ฅผ ์ ๊ณตํ์ฌ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ์ ์์ ์ ์กด์ฌ๋ฅผ ์๋ฆฝ๋๋ค.
- ํํธ๋นํธ ๋ฐ ์ํ ๊ฒ์ฌ: ์ฌ์ ํ ํ์ฑ ์ํ์ด๊ณ ๊ธฐ๋ฅ์ ์ธ์ง ํ์ธํ๊ธฐ ์ํด ์๋น์ค ์ธ์คํด์ค๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ ์ง์คํธ๋ฆฌ์ ํํธ๋นํธ๋ฅผ ๋ณด๋ด๊ฑฐ๋ ๋ ์ง์คํธ๋ฆฌ๊ฐ ์ธ์คํด์ค์ ๋ํด ํ๋ฐํ๊ฒ ์ํ ๊ฒ์ฌ๋ฅผ ์ํํฉ๋๋ค. ํํธ๋นํธ๊ฐ ์ค์ง๋๊ฑฐ๋ ์ํ ๊ฒ์ฌ๊ฐ ์คํจํ๋ฉด ์ธ์คํด์ค๊ฐ ๋น์ ์์ผ๋ก ํ์๋๊ฑฐ๋ ์ ๊ฑฐ๋ฉ๋๋ค.
- ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ: ํด๋ผ์ด์ธํธ๋ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฟผ๋ฆฌํ์ฌ ํน์ ์๋น์ค์ ๋ํ ํ์ฌ ํ์ฑ ์ํ์ด๊ณ ์ ์์ธ ์ธ์คํด์ค ๋ชฉ๋ก์ ๊ฐ์ ธ์ต๋๋ค.
- ๋ฑ๋ก ์ทจ์: ์๋น์ค ์ธ์คํด์ค๊ฐ ์ ์์ ์ผ๋ก ์ข ๋ฃ๋๋ฉด ๋ ์ง์คํธ๋ฆฌ์์ ๋ช ์์ ์ผ๋ก ๋ฑ๋ก์ ์ทจ์ํฉ๋๋ค. ์๊ธฐ์น ์๊ฒ ์ถฉ๋ํ๋ ๊ฒฝ์ฐ ๋ ์ง์คํธ๋ฆฌ์ ์ํ ๊ฒ์ฌ ๋๋ TTL(Time-To-Live) ๋ฉ์ปค๋์ฆ์ด ๊ฒฐ๊ตญ ๋ถ์ฌ๋ฅผ ๊ฐ์งํ๊ณ ํญ๋ชฉ์ ์ ๊ฑฐํฉ๋๋ค.
๋์ ์๋น์ค ๋ฑ๋ก์ ์ฃผ์ ๊ตฌ์ฑ ์์
๋์ ์๋น์ค ๋ฑ๋ก์ ํจ๊ณผ์ ์ผ๋ก ๊ตฌํํ๋ ค๋ฉด ๋ช ๊ฐ์ง ํต์ฌ ๊ตฌ์ฑ ์์๊ฐ ํจ๊ป ์๋ํฉ๋๋ค.
1. ์๋น์ค ๋ ์ง์คํธ๋ฆฌ
์๋น์ค ๋ ์ง์คํธ๋ฆฌ๋ ๋ชจ๋ ์๋น์ค ์ธ์คํด์ค์ ๋ํ ์ค์ ๊ถ์ ์์ค์ ๋๋ค. ํ์ฑ ์๋น์ค์ ๋ชจ๋ ๋คํธ์ํฌ ์์น์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฐ์ฉ์ฑ์ด ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ๋ค์ ์ฌํญ์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค.
- ๊ฐ์ฉ์ฑ์ด ๋์: ๋ ์ง์คํธ๋ฆฌ ์์ฒด๊ฐ ๋จ์ผ ์คํจ ์ง์ ์ด ๋ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํด๋ฌ์คํฐ๋ก ์คํ๋ฉ๋๋ค.
- ์ผ๊ด์ฑ: ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ด ์ด์์ ์ด์ง๋ง ๋๊ท๋ชจ ์์คํ ์์ ์ฑ๋ฅ์ ์ํด ์ต์ข ์ผ๊ด์ฑ์ด ์ข ์ข ํ์ฉ๋๊ฑฐ๋ ์ ํธ๋๊ธฐ๋ ํฉ๋๋ค.
- ๋น ๋ฆ: ๋น ๋ฅธ ์กฐํ๊ฐ ์๋ต์ฑ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ์ ๋๋ค.
๋๋ฆฌ ์ฌ์ฉ๋๋ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ ์๋ฃจ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Netflix Eureka: ๊ฐ์ฉ์ฑ์ด ๋์ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๋ฅผ ์ํด ์ค๊ณ๋ REST ๊ธฐ๋ฐ ์๋น์ค๋ก, Spring Cloud ์์ฝ์์คํ ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ์ผ๊ด์ฑ๋ณด๋ค ๊ฐ์ฉ์ฑ์ ์ฐ์ ์ํฉ๋๋ค(CAP ์ ๋ฆฌ์ AP ๋ชจ๋ธ).
- HashiCorp Consul: ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ, ์ํ ๊ฒ์ฌ, ๋ถ์ฐ ํค-๊ฐ ์ ์ฅ์ ๋ฐ DNS ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ํฌ๊ด์ ์ธ ๋๊ตฌ์ ๋๋ค. ๋ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ ๋ณด์ฅ์ ์ ๊ณตํฉ๋๋ค(CP ๋ชจ๋ธ).
- Apache ZooKeeper: ๊ฐ๋ ฅํ ์ผ๊ด์ฑ ๋ณด์ฅ์ผ๋ก ์ธํด ์๋น์ค ๋ ์ง์คํธ๋ฆฌ ๋ฐ ๊ธฐํ ๋ถ์ฐ ์์คํ ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฃผ ์ฌ์ฉ๋๋ ๋งค์ฐ ์์ ์ ์ธ ๋ถ์ฐ ์กฐ์ ์๋น์ค์ ๋๋ค.
- etcd: ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ๊ฐ์ถ ๋ถ์ฐํ ์์ ์ ์ธ ํค-๊ฐ ์ ์ฅ์๋ก, Kubernetes์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ์ฅ์๋ก ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
- Kubernetes API ์๋ฒ: ๋ ๋ฆฝ ์คํํ ๋ ์ง์คํธ๋ฆฌ๋ ์๋์ง๋ง Kubernetes ์์ฒด๋ ํฌ๋ ๋ฐ ์๋น์ค์ ์๋ช ์ฃผ๊ธฐ์ ๋์ค์ปค๋ฒ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ๋ ฅํ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ ์ญํ ์ ํฉ๋๋ค.
2. ๋ฑ๋ก ๋ฉ์ปค๋์ฆ
์๋น์ค๋ ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ณด๋ฅผ ์ด๋ป๊ฒ ๊ฐ์ ธ์ฌ๊น์? ๋ ๊ฐ์ง ์ฃผ์ ์ ๊ทผ ๋ฐฉ์์ด ์์ต๋๋ค.
a. ์์ฒด ๋ฑ๋ก(์๋น์ค ์ธก ๋ฑ๋ก)
- ๋ฉ์ปค๋์ฆ: ์๋น์ค ์ธ์คํด์ค ์์ฒด๋ ์์ ์ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ์ ์์ ์ ์ ๋ณด๋ฅผ ๋ฑ๋กํ๊ณ ์ข ๋ฃ ์ ๋ฑ๋ก์ ์ทจ์ํ ์ฑ ์์ด ์์ต๋๋ค. ๋ํ ์ผ๋ฐ์ ์ผ๋ก ๋ฑ๋ก์ ์ ์งํ๊ธฐ ์ํด ํํธ๋นํธ๋ฅผ ๋ณด๋ ๋๋ค.
- ์ฅ์ :
- ์๋น์ค๊ฐ ์์ฒด ๋ฑ๋ก์ ์ฒ๋ฆฌํ๋ฏ๋ก ์ธํ๋ผ ์ค์ ์ด ๋ ๊ฐ๋จํฉ๋๋ค.
- ์๋น์ค๋ ๋ ์ง์คํธ๋ฆฌ์ ํ๋ถํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ๋จ์ :
- ๊ฐ ์๋น์ค์ ๋์ค์ปค๋ฒ๋ฆฌ ๋ก์ง์ ํฌํจํด์ผ ํ๋ฏ๋ก ์ ์ฌ์ ์ผ๋ก ๋ค์ํ ์๋น์ค ๋ฐ ์ธ์ด์์ ์์ฉ๊ตฌ ์ฝ๋๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์๋น์ค๊ฐ ์ถฉ๋ํ๋ฉด ๋ช ์์ ์ผ๋ก ๋ฑ๋ก์ ์ทจ์ํ์ง ์์ ๋ ์ง์คํธ๋ฆฌ์ ์๊ฐ ์ด๊ณผ ๋ฉ์ปค๋์ฆ์ ์์กดํ ์ ์์ต๋๋ค.
- ์: Eureka ์๋ฒ์ ๋ฑ๋กํ๊ธฐ ์ํด Spring Cloud Eureka ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ๋ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ .
b. ํ์ฌ ๋ฑ๋ก(์์ด์ ํธ/ํ๋ก์ ์ธก ๋ฑ๋ก)
- ๋ฉ์ปค๋์ฆ: ์ธ๋ถ ์์ด์ ํธ ๋๋ ํ๋ก์(์: ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ดํฐ, ์ฌ์ด๋์นด ๋๋ ์ ์ฉ ๋ฑ๋ก ์์ด์ ํธ)๋ ์๋น์ค ์ธ์คํด์ค๋ฅผ ๋ฑ๋ก ๋ฐ ๋ฑ๋ก ์ทจ์ํ ์ฑ ์์ด ์์ต๋๋ค. ์๋น์ค ์์ฒด๋ ๋ฑ๋ก ํ๋ก์ธ์ค๋ฅผ ์์ง ๋ชปํฉ๋๋ค.
- ์ฅ์ :
- ์๋น์ค๋ฅผ ๋์ค์ปค๋ฒ๋ฆฌ ๋ก์ง์์ ๋ถ๋ฆฌํ์ฌ ์๋น์ค ์ฝ๋๋ฅผ ๋ ๊น๋ํ๊ฒ ์ ์งํฉ๋๋ค.
- ์์ฒด ๋ฑ๋ก์ ์ํด ์์ ํ ์ ์๋ ๊ธฐ์กด ๋ ๊ฑฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ ์๋ํฉ๋๋ค.
- ์์ด์ ํธ๊ฐ ์ค๋ฅ๋ฅผ ๊ฐ์งํ๊ณ ๋ฑ๋ก์ ์ทจ์ํ ์ ์์ผ๋ฏ๋ก ์๋น์ค ์ถฉ๋์ ๋ ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ๋จ์ :
- ์ถ๊ฐ ์ธํ๋ผ(์์ด์ ํธ)๊ฐ ํ์ํฉ๋๋ค.
- ์์ด์ ํธ๋ ์๋น์ค ์ธ์คํด์ค๊ฐ ์์๋๊ฑฐ๋ ์ค์ง๋ ๋ ์์ ์ ์ผ๋ก ๊ฐ์งํด์ผ ํฉ๋๋ค.
- ์: Kubernetes(ํฌ๋/์๋น์ค ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ฒ๋ฆฌํ๋ kubelet ๋ฐ ์ปจํธ๋กค๋ฌ ๊ด๋ฆฌ์), HashiCorp Nomad, Consul ์์ด์ ํธ๊ฐ ์๋ Docker Compose.
3. ์ํ ๊ฒ์ฌ ๋ฐ ํํธ๋นํธ
์๋น์ค๋ฅผ ๋ฑ๋กํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ๋ ์ง์คํธ๋ฆฌ๋ ๋ฑ๋ก๋ ์ธ์คํด์ค๊ฐ ์ค์ ๋ก ์ ์ ์ํ์ด๊ณ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋์ง ์์์ผ ํฉ๋๋ค. ์ด๋ ๋ค์์ ํตํด ๋ฌ์ฑ๋ฉ๋๋ค.
- ํํธ๋นํธ: ์๋น์ค ์ธ์คํด์ค๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ ์ง์คํธ๋ฆฌ์ ์ ํธ(ํํธ๋นํธ)๋ฅผ ๋ณด๋ด ์ฌ์ ํ ํ์ฑ ์ํ์์ ๋ํ๋ ๋๋ค. ๊ตฌ์ฑ๋ ๊ธฐ๊ฐ(TTL ๋๋ Time-To-Live) ๋์ ํํธ๋นํธ๊ฐ ๋๋ฝ๋๋ฉด ๋ ์ง์คํธ๋ฆฌ๋ ์ธ์คํด์ค๊ฐ ์คํจํ๋ค๊ณ ๊ฐ์ ํ๊ณ ์ ๊ฑฐํฉ๋๋ค.
- ํ์ฑ ์ํ ๊ฒ์ฌ: ์๋น์ค ๋ ์ง์คํธ๋ฆฌ(๋๋ ์ ์ฉ ์ํ ๊ฒ์ฌ ์์ด์ ํธ)๋ ์๋น์ค ์ธ์คํด์ค์ ์ํ ์๋ํฌ์ธํธ(์: HTTP /health ์๋ํฌ์ธํธ, TCP ํฌํธ ๊ฒ์ฌ ๋๋ ์ฌ์ฉ์ ์ง์ ์คํฌ๋ฆฝํธ)๋ฅผ ํ๋ฐํ๊ฒ pingํฉ๋๋ค. ๊ฒ์ฌ๊ฐ ์คํจํ๋ฉด ์ธ์คํด์ค๊ฐ ๋น์ ์์ผ๋ก ํ์๋๊ฑฐ๋ ์ ๊ฑฐ๋ฉ๋๋ค.
๊ฐ๋ ฅํ ์ํ ๊ฒ์ฌ๋ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ์ ์ ํ์ฑ์ ์ ์งํ๊ณ ํด๋ผ์ด์ธํธ๊ฐ ๊ธฐ๋ฅ ์ธ์คํด์ค์ ์ฃผ์๋ง ์์ ํ๋๋ก ํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์ค์ฉ์ ์ธ ๊ตฌํ ๋ฐ ๊ธฐ์
๋์ ์๋น์ค ๋ฑ๋ก์ ์ฉ์ดํ๊ฒ ํ๋ ์ฃผ์ ๊ธฐ์ ์ ์ดํด๋ณด๊ณ ํด๋น ๊ธฐ์ ์ ์ฑํ ๋ฐ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ๊ธ๋ก๋ฒ ๊ด์ ์ ์ ๊ณตํ๊ฒ ์ต๋๋ค.
HashiCorp Consul
Consul์ ์๋น์ค ๋คํธ์ํน, ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ, ํค-๊ฐ ์ ์ฅ์ ๋ฐ ๊ฐ๋ ฅํ ์ํ ๊ฒ์ฌ๋ฅผ ํฌ๊ดํ๋ ๋ค์ฌ๋ค๋ฅํ ๋๊ตฌ์ ๋๋ค. ๊ฐ๋ ฅํ ์ผ๊ด์ฑ, ๋ค์ค ๋ฐ์ดํฐ ์ผํฐ ๊ธฐ๋ฅ ๋ฐ DNS ์ธํฐํ์ด์ค๋ก ์ธํด ๋๋ฆฌ ์ฑํ๋์์ต๋๋ค.
- ๋์ ๋ฑ๋ก: ์๋น์ค๋ Consul์ API๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒด ๋ฑ๋กํ๊ฑฐ๋ ํ์ฌ ๋ฑ๋ก์ ์ํด Consul ์์ด์ ํธ(ํด๋ผ์ด์ธํธ ์ธก ๋๋ ์ฌ์ด๋์นด)๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ์์ด์ ํธ๋ ์๋น์ค ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๊ทธ์ ๋ฐ๋ผ Consul์ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
- ์ํ ๊ฒ์ฌ: HTTP, TCP, TTL(Time-To-Live) ๋ฐ ์ธ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ ๋ค์ํ ์ ํ์ ์ง์ํ์ฌ ์๋น์ค ์ํ ๋ณด๊ณ ์ ๋ํ ์ธ๋ถํ๋ ์ ์ด๋ฅผ ํ์ฉํฉ๋๋ค.
- ๊ธ๋ก๋ฒ ๋๋ฌ ๋ฒ์: Consul์ ๋ค์ค ๋ฐ์ดํฐ ์ผํฐ ํ๋๋ ์ด์ ์ ํตํด ์๋ก ๋ค๋ฅธ ์ง๋ฆฌ์ ์ง์ญ์ ์๋ ์๋น์ค๊ฐ ์๋ก๋ฅผ ๊ฒ์ํ ์ ์์ผ๋ฏ๋ก ๊ธ๋ก๋ฒ ํธ๋ํฝ ๊ด๋ฆฌ ๋ฐ ์ฌํด ๋ณต๊ตฌ ์ ๋ต์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ฌ์ฉ ์ฌ๋ก ์: ์ฌ๋ฌ ํด๋ผ์ฐ๋ ์ง์ญ์ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ๋ฐฐํฌ๋ ๊ธ์ต ์๋น์ค ํ์ฌ๋ Consul์ ์ฌ์ฉํ์ฌ ์๋น์ค๋ฅผ ๋ฑ๋กํ๊ณ ๋์ ๊ฐ์ฉ์ฑ๊ณผ ๊ธ๋ก๋ฒ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๋ํ ๋ฎ์ ์ง์ฐ ์๊ฐ ์ก์ธ์ค๋ฅผ ์ํด ์ง์ญ ๊ฐ ๋์ค์ปค๋ฒ๋ฆฌ๋ฅผ ํ์ฑํํฉ๋๋ค.
Netflix Eureka
Netflix์ ๋๊ท๋ชจ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ์ ์ํ ํ๋ ฅ์ ์ธ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ์๋ฃจ์ ์ ๋ํ ํ์์ฑ์์ ํ์ํ Eureka๋ ์ผ๋ถ ๋ ์ง์คํธ๋ฆฌ ๋ ธ๋๊ฐ ๋ค์ด๋๋๋ผ๋ ์ง์์ ์ธ ์๋น์ค ์ด์์ ์ฐ์ ์ํ๋ฉด์ ๋์ ๊ฐ์ฉ์ฑ์ ์ต์ ํ๋์ด ์์ต๋๋ค.
- ๋์ ๋ฑ๋ก: ์๋น์ค(์ผ๋ฐ์ ์ผ๋ก Spring Cloud Netflix Eureka ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ๋ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ )๋ Eureka ์๋ฒ์ ์์ฒด ๋ฑ๋กํฉ๋๋ค.
- ์ํ ๊ฒ์ฌ: ์ฃผ๋ก ํํธ๋นํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋น์ค ์ธ์คํด์ค๊ฐ ์ฌ๋ฌ ํํธ๋นํธ๋ฅผ ๋์น๋ฉด ๋ ์ง์คํธ๋ฆฌ์์ ์ ๊ฑฐ๋ฉ๋๋ค.
- ๊ธ๋ก๋ฒ ๋๋ฌ ๋ฒ์: Eureka ํด๋ฌ์คํฐ๋ ์๋ก ๋ค๋ฅธ ๊ฐ์ฉ์ฑ ์์ญ ๋๋ ์ง์ญ์ ๋ฐฐํฌํ ์ ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ์์ญ์ผ๋ก ๋์ฒดํ์ฌ ๋จผ์ ๋ก์ปฌ ์์ญ์์ ์๋น์ค๋ฅผ ๊ฒ์ํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ ์ฌ๋ก ์: ๊ธ๋ก๋ฒ ์ ์ ์๊ฑฐ๋ ํ๋ซํผ์ Eureka๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋๋ฅ์ ๊ฑธ์ณ ์์ฒ ๊ฐ์ ๋ง์ดํฌ๋ก์๋น์ค ์ธ์คํด์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ๊ฐ์ฉ์ฑ์ ์ค์ ์ ๋ ์ค๊ณ๋ ๋คํธ์ํฌ ํํฐ์ ๋๋ ๋ถ๋ถ์ ์ธ ๋ ์ง์คํธ๋ฆฌ ์ค๋ฅ ์ค์๋ ์๋น์ค๊ฐ ์๋ก๋ฅผ ์ฐพ๊ณ ํต์ ํ์ฌ ์จ๋ผ์ธ ์ผํ๊ฐ์ ์ค๋จ์ ์ต์ํํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
Kubernetes
Kubernetes๋ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์ ์ฌ์ค์ ํ์ค์ด ๋์์ผ๋ฉฐ ์ด์์ ํ์์ ์ธ ๊ฐ๋ ฅํ ๊ธฐ๋ณธ ์ ๊ณต ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ๋ฐ ๋์ ๋ฑ๋ก ๊ธฐ๋ฅ์ ํฌํจํฉ๋๋ค.
- ๋์ ๋ฑ๋ก: ํฌ๋(ํ๋ ์ด์์ ์ปจํ
์ด๋ ๊ทธ๋ฃน)๊ฐ ๋ฐฐํฌ๋๋ฉด Kubernetes ์ปจํธ๋กค ํ๋ ์ธ์ด ์๋์ผ๋ก ๋ฑ๋กํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Kubernetes
Service๊ฐ์ฒด๋ ๊ฐ๋ณ ํฌ๋๋ฅผ ์ถ์ํํ๋ ์์ ์ ์ธ ๋คํธ์ํฌ ์๋ํฌ์ธํธ(๊ฐ์ IP ๋ฐ DNS ์ด๋ฆ)๋ฅผ ์ ๊ณตํฉ๋๋ค. - ์ํ ๊ฒ์ฌ: Kubernetes๋
liveness probes(์ปจํ ์ด๋๊ฐ ์ฌ์ ํ ์คํ ์ค์ธ์ง ๊ฐ์ง) ๋ฐreadiness probes(์ปจํ ์ด๋๊ฐ ํธ๋ํฝ์ ์ฒ๋ฆฌํ ์ค๋น๊ฐ ๋์๋์ง ํ์ธ)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ค๋น์ฑ ํ๋ก๋ธ์ ์คํจํ ํฌ๋๋ ์๋น์ค์ ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ํฌ์ธํธ์์ ์๋์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค. - ๊ธ๋ก๋ฒ ๋๋ฌ ๋ฒ์: ๋จ์ผ Kubernetes ํด๋ฌ์คํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ํ ์ง์ญ ๋ด์์ ์๋ํ์ง๋ง ํ๋๋ ์ด์ ๋ Kubernetes ๋๋ ๋ค์ค ํด๋ฌ์คํฐ ์ ๋ต์ ์ฌ์ฉํ๋ฉด ์๋ก ๋ค๋ฅธ ํด๋ฌ์คํฐ์ ์๋น์ค๊ฐ ์ธ๋ถ ๋๊ตฌ ๋๋ ์ฌ์ฉ์ ์ง์ ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด ์๋ก๋ฅผ ๊ฒ์ํ ์ ์๋ ๊ธ๋ก๋ฒ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ์ฌ์ฉ ์ฌ๋ก ์: ์ฃผ์ ํต์ ์ ๊ณต์ ์ฒด๋ Kubernetes๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ๊ฐ ๊ด๊ณ ๊ด๋ฆฌ(CRM) ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ ์ธ๊ณ์ ์ผ๋ก ๋ฐฐํฌํฉ๋๋ค. Kubernetes๋ ์ด๋ฌํ ์๋น์ค์ ์๋ ๋ฑ๋ก, ์ํ ๋ชจ๋ํฐ๋ง ๋ฐ ๋์ค์ปค๋ฒ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ์ฌ ๊ณ ๊ฐ ๋ฌธ์๊ฐ ๋ฌผ๋ฆฌ์ ์์น์ ๊ด๊ณ์์ด ์ ์ ์ธ์คํด์ค๋ก ๋ผ์ฐํ ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
Apache ZooKeeper / etcd
Eureka ๋๋ Consul๊ณผ ๊ฐ์ ๋์ผํ ์๋ฏธ์ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ๋ ์๋์ง๋ง ZooKeeper ๋ฐ etcd๋ ์ฌ์ฉ์ ์ง์ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ ๋๋ ๊ธฐํ ๋ถ์ฐ ์์คํ ์ด ๊ตฌ์ถ๋๋ ๊ธฐ๋ณธ ๋ถ์ฐ ์กฐ์ ๊ธฐ๋ณธ ์์(์: ๊ฐ๋ ฅํ ์ผ๊ด์ฑ, ๊ณ์ธต์ ํค-๊ฐ ์ ์ฅ์, ๊ฐ์ ๋ฉ์ปค๋์ฆ)๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋์ ๋ฑ๋ก: ์๋น์ค๋ ๋คํธ์ํฌ ์ธ๋ถ ์ ๋ณด๋ฅผ ํฌํจํ์ฌ ZooKeeper ๋๋ etcd์ ์์ ๋ ธ๋(ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ด ๋์ด์ง๋ฉด ์ฌ๋ผ์ง๋ ์์ ํญ๋ชฉ)๋ฅผ ๋ฑ๋กํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ด๋ฌํ ๋ ธ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ํ ์ ์์ต๋๋ค.
- ์ํ ๊ฒ์ฌ: ์์์ ์ผ๋ก ์์ ๋ ธ๋(์ฐ๊ฒฐ ์์ค ์ ์ฌ๋ผ์ง) ๋๋ ๊ฐ์์ ๊ฒฐํฉ๋ ๋ช ์์ ํํธ๋นํธ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
- ๊ธ๋ก๋ฒ ๋๋ฌ ๋ฒ์: ๋ ๋ค ๋ณต์ ๋ฅผ ํตํด ๋ค์ค ๋ฐ์ดํฐ ์ผํฐ ๋ฐฐํฌ์ ๋ง๊ฒ ๊ตฌ์ฑํ ์ ์์ด ๊ธ๋ก๋ฒ ์กฐ์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ฌ์ฉ ์ฌ๋ก ์: ๋๊ท๋ชจ ๋ถ์ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํด๋ฌ์คํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ฐ๊ตฌ ๊ธฐ๊ด์ ZooKeeper๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ๋ ธ๋๋ฅผ ์กฐ์ ํฉ๋๋ค. ๊ฐ ์์ ์๋ ์์ ์ ์์ ์ ๋์ ์ผ๋ก ๋ฑ๋กํ๊ณ ๋ง์คํฐ ๋ ธ๋๋ ์ด๋ฌํ ๋ฑ๋ก์ ๋ชจ๋ํฐ๋งํ์ฌ ์์ ์ ํจ์จ์ ์ผ๋ก ํ ๋นํฉ๋๋ค.
๋์ ์๋น์ค ๋ฑ๋ก์ ๊ณผ์ ๋ฐ ๊ณ ๋ ค ์ฌํญ
๋์ ์๋น์ค ๋ฑ๋ก์ ๋ง๋ํ ์ด์ ์ ์ ๊ณตํ์ง๋ง ๊ตฌํ์๋ ๊ฐ๋ ฅํ ์์คํ ์ ์ํด ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํ ์์ฒด์ ์ธ ๊ณผ์ ๊ฐ ๋ฐ๋ฆ ๋๋ค.
- ๋คํธ์ํฌ ๋๊ธฐ ์๊ฐ ๋ฐ ์ผ๊ด์ฑ: ์ ์ธ๊ณ์ ์ผ๋ก ๋ถ์ฐ๋ ์์คํ ์์ ๋คํธ์ํฌ ๋๊ธฐ ์๊ฐ์ ๋ ์ง์คํธ๋ฆฌ ์ ๋ฐ์ดํธ๊ฐ ์ ํ๋๋ ์๋์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ต์ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ๊ณผ ์ ๋ฐ์ดํธ๊ฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ํ๋์ด ๊ฐ์ฉ์ฑ์ ์ฐ์ ์ํ๋ ์ต์ข ์ผ๊ด์ฑ ์ค์์ ๊ฒฐ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋๋ถ๋ถ์ ๋๊ท๋ชจ ์์คํ ์ ์ฑ๋ฅ์ ์ํด ์ต์ข ์ผ๊ด์ฑ์ ์ ํธํฉ๋๋ค.
- ์คํ๋ฆฟ ๋ธ๋ ์ธ ์๋๋ฆฌ์ค: ์๋น์ค ๋ ์ง์คํธ๋ฆฌ ํด๋ฌ์คํฐ์ ๋คํธ์ํฌ ํํฐ์ ์ด ๋ฐ์ํ๋ฉด ํด๋ฌ์คํฐ์ ์ฌ๋ฌ ๋ถ๋ถ์ด ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ์ฌ ์๋น์ค ๊ฐ์ฉ์ฑ์ ๋ํ ์ผ๊ด์ฑ ์๋ ๋ณด๊ธฐ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ํด๋ผ์ด์ธํธ๊ฐ ์กด์ฌํ์ง ์๊ฑฐ๋ ๋น์ ์์ ์ธ ์๋น์ค๋ก ์ฐ๊ฒฐ๋ ์ ์์ต๋๋ค. ๊ฐ๋ ฅํ ํฉ์ ์๊ณ ๋ฆฌ์ฆ(์: Raft ๋๋ Paxos)์ ์ด๋ฅผ ์ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ณด์: ์๋น์ค ๋ ์ง์คํธ๋ฆฌ์๋ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ์ ๋ํ ์ค์ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๋ชจ๋์ ๋ํด ๋ฌด๋จ ์ก์ธ์ค๋ก๋ถํฐ ๋ณดํธํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ๋ณด์ ํต์ (TLS/SSL)์ด ํฌํจ๋ฉ๋๋ค.
- ๋ชจ๋ํฐ๋ง ๋ฐ ๊ฒฝ๊ณ : ์๋น์ค ๋ ์ง์คํธ๋ฆฌ์ ์ํ๊ฐ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ๋ ์ง์คํธ๋ฆฌ ๋ ธ๋, ๋ฆฌ์์ค ์ฌ์ฉ๋ฅ , ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋ฐ ๋ฑ๋ก๋ ์๋น์ค์ ์ ํ์ฑ์ ๋ํ ํฌ๊ด์ ์ธ ๋ชจ๋ํฐ๋ง์ด ํ์์ ์ ๋๋ค. ์ด์์์๊ฒ ์ด์ ํ์์ ์๋ฆฌ๋ ๊ฒฝ๊ณ ๋ฉ์ปค๋์ฆ์ด ์์ด์ผ ํฉ๋๋ค.
- ๋ณต์ก์ฑ: ์๋น์ค ๋ ์ง์คํธ๋ฆฌ ๋ฐ ๋์ ๋ฑ๋ก์ ๋์ ํ๋ฉด ์ํคํ ์ฒ์ ๋ ๋ค๋ฅธ ๋ถ์ฐ ๊ตฌ์ฑ ์์๊ฐ ์ถ๊ฐ๋ฉ๋๋ค. ์ด๋ก ์ธํด ์ ์ฒด ์์คํ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ์ฌ ๋ถ์ฐ ์์คํ ๊ด๋ฆฌ์ ๋ํ ์ ๋ฌธ ์ง์์ด ํ์ํฉ๋๋ค.
- ๋ถ์ค ํญ๋ชฉ: ์ํ ๊ฒ์ฌ ๋ฐ ํํธ๋นํธ์๋ ๋ถ๊ตฌํ๊ณ ์๋น์ค๊ฐ ๊ฐ์๊ธฐ ์คํจํ๊ณ ๋ฑ๋ก ์ทจ์ ๋ฉ์ปค๋์ฆ์ด ์ถฉ๋ถํ ๊ฐ๋ ฅํ์ง ์๊ฑฐ๋ TTL์ด ๋๋ฌด ๊ธธ๋ฉด ๋ถ์ค ํญ๋ชฉ์ด ๋ ์ง์คํธ๋ฆฌ์ ์ง์์ ์ผ๋ก ์ ์ง๋ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ํด๋ผ์ด์ธํธ๊ฐ ์กด์ฌํ์ง ์๋ ์๋น์ค์ ์ฐ๊ฒฐํ๋ ค๊ณ ์๋ํ ์ ์์ต๋๋ค.
๋์ ์๋น์ค ๋ฑ๋ก์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
๋์ ์๋น์ค ๋ฑ๋ก์ ์ด์ ์ ๊ทน๋ํํ๊ณ ์ ์ฌ์ ์ธ ํจ์ ์ ์ํํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
- ์ฌ๋ฐ๋ฅธ ๋ ์ง์คํธ๋ฆฌ ์ ํ: ์ผ๊ด์ฑ, ๊ฐ์ฉ์ฑ, ํ์ฅ์ฑ ๋ฐ ๊ธฐ์กด ๊ธฐ์ ์คํ๊ณผ์ ํตํฉ์ ๋ํ ํน์ ์ํคํ ์ฒ ์๊ตฌ ์ฌํญ์ ๋ง๋ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ ์๋ฃจ์ ์ ์ ํํฉ๋๋ค. ๊ฐ๋ ฅํ ์ผ๊ด์ฑ ์๊ตฌ ์ฌํญ์๋ Consul๊ณผ ๊ฐ์ ์๋ฃจ์ ์ ๊ณ ๋ คํ๊ฑฐ๋ ๊ฐ์ฉ์ฑ์ ์ฐ์ ์ํ๋ ์๋๋ฆฌ์ค์๋ Eureka๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
- ๊ฐ๋ ฅํ ์ํ ๊ฒ์ฌ ๊ตฌํ: ๊ฐ๋จํ 'ping' ๊ฒ์ฌ๋ฅผ ๋์ด์ญ๋๋ค. ์๋น์ค์ ํ๋ก์ธ์ค๋ฟ๋ง ์๋๋ผ ์ข ์์ฑ(๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ธ๋ถ API ๋ฑ)๋ ํ์ธํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ณ ์ํ ์๋ํฌ์ธํธ๋ฅผ ๊ตฌํํฉ๋๋ค. ํํธ๋นํธ ๊ฐ๊ฒฉ๊ณผ TTL์ ์ ์คํ๊ฒ ์กฐ์ ํฉ๋๋ค.
- ์ต์ข ์ผ๊ด์ฑ์ ์ํ ์ค๊ณ: ๋๋ถ๋ถ์ ๋๊ท๋ชจ ๋ง์ดํฌ๋ก์๋น์ค์ ๊ฒฝ์ฐ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ์์ ์ต์ข ์ผ๊ด์ฑ์ ์์ฉํ๋ฉด ๋ ๋์ ์ฑ๋ฅ๊ณผ ๊ฐ์ฉ์ฑ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ๋ ์ง์คํธ๋ฆฌ ์๋ต์ ์บ์ฑํ์ฌ ๋ถ์ค ๋ฐ์ดํฐ์ ์งง์ ๊ธฐ๊ฐ์ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌํ๋๋ก ํด๋ผ์ด์ธํธ๋ฅผ ์ค๊ณํฉ๋๋ค.
- ์๋น์ค ๋ ์ง์คํธ๋ฆฌ ๋ณดํธ: ๋ ์ง์คํธ๋ฆฌ์ ์ํธ ์์ฉํ๋ ์๋น์ค์ ๋ํด ๊ฐ๋ ฅํ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ๋ฅผ ๊ตฌํํฉ๋๋ค. ๋ ์ง์คํธ๋ฆฌ๋ก ๋ค์ด์ค๊ณ ๋๊ฐ๋ ๋ชจ๋ ํต์ ์ TLS/SSL์ ์ฌ์ฉํฉ๋๋ค. ๋ ์ง์คํธ๋ฆฌ ๋ ธ๋๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ๋คํธ์ํฌ ๋ถํ ์ ๊ณ ๋ คํ์ญ์์ค.
- ๋ชจ๋ ํญ๋ชฉ ๋ชจ๋ํฐ๋ง: ์๋น์ค ๋ ์ง์คํธ๋ฆฌ ์์ฒด(CPU, ๋ฉ๋ชจ๋ฆฌ, ๋คํธ์ํฌ, ๋์คํฌ I/O, ๋ณต์ ์ํ) ๋ฐ ๋ฑ๋ก/๋ฑ๋ก ์ทจ์ ์ด๋ฒคํธ๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค. ๊ฐ ์๋น์ค์ ๋ํด ๋ฑ๋ก๋ ์ธ์คํด์ค ์๋ฅผ ์ถ์ ํฉ๋๋ค. ๋น์ ์์ ์ธ ๋์์ด๋ ์ค๋ฅ์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ์ค์ ํฉ๋๋ค.
- ๋ฐฐํฌ ๋ฐ ๋ฑ๋ก ์๋ํ: ์๋น์ค ๋ฑ๋ก์ CI/CD(์ง์์ ์ธ ํตํฉ/์ง์์ ์ธ ๋ฐฐํฌ) ํ์ดํ๋ผ์ธ์ ํตํฉํฉ๋๋ค. ์ ์๋น์ค ์ธ์คํด์ค๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌ๋๋ฉด ์๋์ผ๋ก ๋ฑ๋ก๋๊ณ ์ถ์ ๋๋ ํ๊ธฐ ์ ๋ฑ๋ก ์ทจ์๋๋๋ก ํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ ์ธก ์บ์ฑ ๊ตฌํ: ํด๋ผ์ด์ธํธ๋ ์๋น์ค ๋ ์ง์คํธ๋ฆฌ์ ๋ํ ๋ถํ๋ฅผ ์ค์ด๊ณ ์กฐํ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ์๋น์ค ๋ ์ง์คํธ๋ฆฌ ์๋ต์ ์บ์ํด์ผ ํฉ๋๋ค. ํฉ๋ฆฌ์ ์ธ ์บ์ ๋ฌดํจํ ์ ๋ต์ ๊ตฌํํฉ๋๋ค.
- ์ ์์ ์ธ ์ข ๋ฃ: ์๋น์ค๊ฐ ์ข ๋ฃ๋๊ธฐ ์ ์ ๋ ์ง์คํธ๋ฆฌ์์ ๋ช ์์ ์ผ๋ก ๋ฑ๋ก์ ์ทจ์ํ๋ ์ ์ ํ ์ข ๋ฃ ํํฌ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ถ์ค ํญ๋ชฉ์ด ์ต์ํ๋ฉ๋๋ค.
- ์๋น์ค ๋ฉ์ ๊ณ ๋ ค: ๊ณ ๊ธ ํธ๋ํฝ ๊ด๋ฆฌ, ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ ๋ฐ ๋ณด์ ๊ธฐ๋ฅ์ ์ํด Istio ๋๋ Linkerd์ ๊ฐ์ ์๋น์ค ๋ฉ์ ์๋ฃจ์ ์ ์ดํด๋ณด์ญ์์ค. ์ด๋ฌํ ์๋ฃจ์ ์ ์ข ์ข ๊ธฐ๋ณธ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ๋ณต์ก์ฑ์ ๋๋ถ๋ถ์ ์ถ์ํํ๊ณ ์ ์ด ํ๋ฉด์ ์ผ๋ถ๋ก ๋ฑ๋ก ๋ฐ ๋ฑ๋ก ์ทจ์๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ์ ๋ฏธ๋
์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ํ๊ฒฝ์ ๊ณ์ ์งํํ๊ณ ์์ต๋๋ค. ๊ณ ๊ธ ํจ๋ฌ๋ค์๊ณผ ๋๊ตฌ์ ๋ฑ์ฅ์ผ๋ก ๋์ฑ ์ ๊ตํ๊ณ ํตํฉ๋ ์๋ฃจ์ ์ ๊ธฐ๋ํ ์ ์์ต๋๋ค.
- ์๋น์ค ๋ฉ์: ์ด๋ฏธ ์๋นํ ๊ฒฌ์ธ๋ ฅ์ ์ป๊ณ ์๋ ์๋น์ค ๋ฉ์๊ฐ ์๋น์ค ๊ฐ ํต์ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ธฐ๋ณธ๊ฐ์ด ๋๊ณ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ ์ธก ๋์ค์ปค๋ฒ๋ฆฌ ๋ก์ง์ ํฌ๋ช ํ๋ก์(์ฌ์ด๋์นด)์ ํฌํจํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์์ ์์ ํ ์ถ์ํํ๊ณ ํธ๋ํฝ ๋ผ์ฐํ , ์ฌ์๋, ํ๋ก ์ฐจ๋จ๊ธฐ ๋ฐ ํฌ๊ด์ ์ธ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ๊ณผ ๊ฐ์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ: ์๋ฒ๋ฆฌ์ค ํ๊ฒฝ(์: AWS Lambda, Google Cloud Functions)์์ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๋ ํ๋ซํผ ์์ฒด์์ ๋๋ถ๋ถ ์ฒ๋ฆฌํฉ๋๋ค. ํ๋ซํผ์ด ํจ์ ํธ์ถ ๋ฐ ํ์ฅ์ ๊ด๋ฆฌํ๋ฏ๋ก ๊ฐ๋ฐ์๋ ๋ช ์์ ๋ ์ง์คํธ๋ฆฌ์ ๊ฑฐ์ ์ํธ ์์ฉํ์ง ์์ต๋๋ค.
- PaaS(Platform-as-a-Service): Cloud Foundry ๋ฐ Heroku์ ๊ฐ์ ํ๋ซํผ๋ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ๋ฅผ ์ถ์ํํ์ฌ ์๋น์ค๊ฐ ์๋ก๋ฅผ ์ฐพ์ ์ ์๋๋ก ํ๊ฒฝ ๋ณ์ ๋๋ ๋ด๋ถ ๋ผ์ฐํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค.
- ์ด์์ ์ธ๊ณต ์ง๋ฅ ๋ฐ ๋จธ์ ๋ฌ๋: ๋ฏธ๋ ์์คํ ์ AI๋ฅผ ํ์ฉํ์ฌ ์๋น์ค ๋ก๋๋ฅผ ์์ธกํ๊ณ ์๋น์ค๋ฅผ ์ฌ์ ์ ํ์ฅํ๋ฉฐ ์ต์ ์ ์ฑ๋ฅ๊ณผ ๋ณต์๋ ฅ์ ์ํด ๋์ค์ปค๋ฒ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
๋์ ์๋น์ค ๋ฑ๋ก์ ๋ ์ด์ ์ ํ ์ฌํญ์ด ์๋๋ผ ํ๋์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ํ๋ ฅ์ ์ธ ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์๊ตฌ ์ฌํญ์ ๋๋ค. ์กฐ์ง์ด ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋ฏผ์ฒฉํ๊ฒ ๋ฐฐํฌํ ์ ์๋๋ก ์ง์ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค์ํ ๋ก๋์ ์ ์ํ๊ณ ์ค๋ฅ์์ ์ ์์ ์ผ๋ก ๋ณต๊ตฌํ๋ฉฐ ์ง์์ ์ธ ์๋ ๊ฐ์ ์์ด ์งํํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
ํต์ฌ ์์น์ ์ดํดํ๊ณ Consul, Eureka ๋๋ Kubernetes์ ๊ฐ์ ์ฃผ์ ๊ธฐ์ ์ ์์ฉํ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํจ์ผ๋ก์จ ์ ์ธ๊ณ ๊ฐ๋ฐ ํ์ ๋ถ์ฐ ์ํคํ ์ฒ์ ๋ชจ๋ ์ ์ฌ๋ ฅ์ ํ์ฉํ์ฌ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๊ฐ๋ ฅํ๊ณ ๊ฐ์ฉ์ฑ์ด ๋์ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค ์์ฝ์์คํ ์ผ๋ก์ ์ฌ์ ์ ๋ณต์กํ์ง๋ง ๋์ ์๋น์ค ๋ฑ๋ก์ ํ ๋๋ก ์ผ์ผ๋ฉด ์ด๋ฌํ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๋๋ ทํ ๊ฒฝ์ ์ฐ์๊ฐ ๋ฉ๋๋ค.